package com.example.myapplication11


import android.content.res.Resources
import android.widget.Button
import android.widget.TextView
import android.os.Bundle
import android.view.View
import android.view.ViewGroup
import android.widget.ImageView
import android.widget.LinearLayout
import androidx.activity.enableEdgeToEdge
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.ViewCompat
import androidx.core.view.WindowInsetsCompat


class MainActivity : AppCompatActivity() {
    override fun onCreate(savedInstanceState: Bundle?) {
        super.onCreate(savedInstanceState)
        enableEdgeToEdge()

        //id的查询在activity_main.xml里面获取
        val linearLayout= LinearLayout(this);//创建一个布局
        linearLayout.orientation= LinearLayout.VERTICAL;//linearLayout设置布局，orientation表示设置方向为垂直布局
        linearLayout.id = View.generateViewId()//给linearLayout设置唯一id这样在ViewCompat中才能监听我的程序
        //不然会闪退报错

        val textView= TextView(this);
        //textView规划大小只能这么表示
        textView.layoutParams= ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT,
            ViewGroup.LayoutParams.WRAP_CONTENT);//高度WRAP_CONTENT作为文本有多少会自动调整文本的高度
        textView.textSize=30F;//给textView规划大小
        textView.text=getString(R.string.textView);//使用getString方法获取文本内容
        linearLayout.addView(textView);//添加文本组件

        val imageView= ImageView(this).apply{
            setImageResource(R.drawable.flag)//调用图片
            layoutParams=android.view.ViewGroup.LayoutParams(500,300)
        }
        linearLayout.addView(imageView);//添加图片组件

        val button= Button(this);
        //这是button按钮规划大小表示
        button.width= ViewGroup.LayoutParams.MATCH_PARENT;
        button.height= ViewGroup.LayoutParams.WRAP_CONTENT;
        button.text=getString(R.string.button);
        linearLayout.addView(button);
        button.setOnClickListener {
            textView.text=getString(R.string.clicked);
        }

        setContentView(linearLayout)//实现在layout文件下面的连接
        ViewCompat.setOnApplyWindowInsetsListener(linearLayout) { v, insets ->
            val systemBars = insets.getInsets(WindowInsetsCompat.Type.systemBars())
            v.setPadding(systemBars.left, systemBars.top, systemBars.right, systemBars.bottom)
            insets
        }


        }
    }



